﻿@{
    ViewBag.Title = "日报表编辑";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section head {
    <script src="~/Areas/Pacm/js/DayReportEdit.js" type="text/javascript"></script>
    <script src="~/Content/js/jquery-plugin/showloading/jquery.showLoading.min.js"
        type="text/javascript"></script>
    <script type="text/javascript">
        var oldtd = null;
        var ispaste = false; //是否粘贴
        var reportstate = "0";
        var isentersave = false; //用来指示是否敲回车键
        var InfoID = @ViewBag.InfoID;
        $(window).load(function() {
            //动态改变高度
            var iHeight = $(this).height() - 40 ;
            document.getElementById("condition").style.height=iHeight + "px";
        });
        $(window).resize(function(){
            var iHeight = $(this).height()- 40 ;
            document.getElementById("condition").style.height= iHeight + "px";
        });
        function nextTd(nowtd) {
            var td = GetNextTdObject(nowtd);
            var trIndex = td.parent().index();
            var tdIndex = td.index();
            var offset = td.offset();
            $("#txt").css("left", offset.left);
            $("#txt").css("top", offset.top);
            $("#txt").css("width", td.width() - 1).css("height", td.height() - 1);
            $("#txt").css("line-height", $(this).height() + "px");
            $("#txt").css("vertical-align", "middle");
            $("#txt").val(td.html());
            oldtd = td;
            $("#txt").show();
            //有时focus不起作用，可以用setTimeout 延迟一会，这样可以解决这个问题
            window.setTimeout(function () { document.getElementById("txt").focus(); }, 100);
        }

        function GetNextTdObject(nowtd) {
            var trIndex = nowtd.parent().index();
            var tdIndex = nowtd.index();
            nowtd = $("tr:eq(" + trIndex + ")").children("td:eq(" + (tdIndex + 1) + ")"); //判断是否是一行中最后一个单元格,如果是的话则跳转到下一行。
            if (nowtd.index() < 0) {
                nowtd = $("tr:eq(" + (trIndex + 1) + ")").children("td:eq(0)");
            }
            //如果最后一格是不可编辑的，将造成死循环。
            if (nowtd.parent().index() < 0) {
                // nowtd = $("tr:eq(" + (trIndex - 1) + ")").children("td").last();
                nowtd = getLastEditAbledtd();
            }
            //newadd 
            if (nowtd == undefined) return nowtd;
            //
            if (nowtd.attr("isEdit") == "1") {
                return nowtd;
            }
            else {
                return GetNextTdObject(nowtd);
            }
        }
        //取得最后一个可编辑的单元格。
        function getLastEditAbledtd() {
            var lastedittd;
            $("td").each(function (i, td) {
                if ($(td).attr("isEdit") == "1")
                    lastedittd = $(td);
            });
            return lastedittd;
        }

        function saveData(nowtd) {
            if ($("#txt").css("display") != "none") {
                var _val = nowtd.html();
                var _inputVal = $.trim($("#txt").val());
                var digits = nowtd.attr("digits");
                if (digits) {
                    try {
                        _inputVal = formatNumber(_inputVal, digits);
                    } catch (e) {
                        alert(e);
                        _inputVal = "";
                    }
                    if (_inputVal == 0) _inputVal = "";
                }
                if (_inputVal == _val || reportstate != "0") {//如果修改前和修改后的值一样或是报表不可修改，则直接跳下格。不用保存。
                    //                    if (isentersave)//判断是否回车键保存，如果是的话自动跳到下一单元格
                    //                        nextTd(nowtd);
                }
                else {

                    var _oldVal = oldtd.html();
                    oldtd.html(_inputVal);
                    _val = _inputVal;
                    var zbbh = nowtd.attr("zb");
                    $.ajax({
                        type: "POST",
                        url: "/pacm/dayreport/SaveZbsj",
                        data: "InfoId=" + InfoID + "&Zbbh=" + zbbh + "&Zbsj=" + _val,
                        success: function (d) {
                            //alert(d.success);
                        }
                    });
                }
            }
        }

        $(document).ready(function () {
            $("body").append("<input id='txt' type='text' style='position:absolute; left:-1000px;top:-1000px; border:0px; z-index:10;font-size:12px; background:#EE8262;' value=''/>");
            $("#txt").hide();
            //绑定回车事件
            $(document).keydown(function (e) {
                //alert(e.keyCode);
                var key = (e.keyCode) || (e.which) || (e.charCode); //兼容浏览器                   
                if (key == 13) {
                    // alert('start');
                    isentersave = false;
                    saveData(oldtd);
                    //alert('end');
                    $("#txt").hide();
                }
            });
            //绑定tablemain所在的父div的滚动事件
            $("#TableMain").parent().parent().scroll(function () {
                saveData(oldtd);
                $("#txt").hide();
            });
            //浏览器大小改变时清除txt 并保存
            $(window).resize(function () {
                saveData(oldtd);
                $("#txt").hide();
            });
            //绑定单元格单击事件
            if (reportstate == "0") {//如果编辑状态是0此时可以编辑,其他任何状态都不能编辑
                $("#TableMain td").mousedown(function () {
                    isentersave = false;
                    //                    alert($(this).attr("isEdit"));
                    if ($(this).attr("isEdit") == "0") return;
                    if (oldtd != null && !ispaste) {//如果执行过粘贴，第一次点击时不执行此处
                        saveData(oldtd);
                    }
                    $(this).css("background-color", "");
                    var digits = $(this).attr("digits");
                    ispaste = false;
                    var offset = $(this).offset();
                    $("#txt").css("left", offset.left);
                    $("#txt").css("top", offset.top);
                    $("#txt").css("width", $(this).width() - 1).css("height", $(this).height() - 1);
                    $("#txt").css("line-height", $(this).height() + "px");
                    $("#txt").css("vertical-align", "middle");
                    $("#txt").val($(this).html());
                    oldtd = $(this);
                    //输入框值类型判定
                    if (digits) {
                        $("#txt").keypress(checkNumber);
                        $("#txt").attr("digits", digits);
                    }
                    $("#txt").show();
                    //有时focus不起作用，可以用setTimeout 延迟一会，这样可以解决这个问题
                    window.setTimeout(function () {
                        document.getElementById("txt").focus();
                    }, 100);
                })
            }
        });
        //保存后计算指标数据公式并保存到数据库
        function SaveClick() {
            saveData(oldtd);
            $("#txt").hide();
            //显示遮罩
           // parent.$('.easyui-layout').showLoading();
           $('#condition').showLoading();
            //ajax调用
            $.ajax({ type: "POST",
                url: "/pacm/dayreport/formulaCount",
                data: "id=" + InfoID,
                success: function (d) {
                    if (d.success =="ok")
                    {
                        location.reload();
                    }
                    else
                    {
                        com.message('warning', d.message); 
                    }
                    //去除遮罩
                    $('#condition').hideLoading();
                    //parent.$('.easyui-layout').hideLoading();
                }
                });
        }
        //导出Excel
        function downloadClick() {
            saveData(oldtd);
            $("#txt").hide();
            //下载前先检查一下
             $.ajax({ type: "POST",
                url: "/pacm/dayreport/CheckDownReport",
                data: "id=" + InfoID,
                success: function (d) {
                    if (d.success == "ok")
                        window.location.href = '/pacm/dayreport/downDayReport?id='+InfoID;
                    else
                        com.message('warning', d.message);
                }
            });
           
        }

        function refreshClick() {
            location.reload();
        }
    </script>
}
<!--主窗体，页面都需要的div-->
<div class="z-toolbar">
    <a id="a_save" href="#" plain="true" class="easyui-linkbutton" icon="icon-save" title="计算"
        onclick="SaveClick()">计算</a> <a id="a_refresh" href="#" plain="true" class="easyui-linkbutton"
            icon="icon-arrow_refresh" title="刷新" onclick="refreshClick()">刷新</a> <a id="a_download"
                href="#" plain="true" class="easyui-linkbutton" icon="icon-download" title="下载"
                onclick="downloadClick()">下载</a>
</div>
<div id="condition" style="margin-left: auto; margin-right: auto; overflow: scroll;
    background: url(/Content/images/back.gif) repeat;">
    @* <div class="grid_1 lbl"></div>
    <div class="grid_9">@Html.Raw(ViewBag.H)</div>
    <div class="grid_1 lbl">
    </div>*@
    @Html.Raw(ViewBag.H)
</div>
